Use pointer coercion instead of messing with -sys
authorFelix Krull <f_krull@gmx.de>
Mon, 2 Sep 2019 07:59:45 +0000 (09:59 +0200)
committerColin Walters <walters@verbum.org>
Fri, 6 May 2022 16:53:54 +0000 (12:53 -0400)
rust-bindings/rust/src/checksum.rs
rust-bindings/rust/src/repo.rs
rust-bindings/rust/sys/src/manual.rs

index 070e07ed8dd1e5e363eaf81be36b10e41abddf60..b2f483073e2e250a67ba56880a3cfcdd03a4ac00 100644 (file)
@@ -32,6 +32,12 @@ impl FromGlibPtrFull<*mut [u8; 32]> for Checksum {
     }
 }
 
+impl FromGlibPtrFull<*mut [*mut u8; 32]> for Checksum {
+    unsafe fn from_glib_full(ptr: *mut [*mut u8; 32]) -> Self {
+        Checksum::new(ptr as *mut u8 as *mut [u8; 32])
+    }
+}
+
 impl FromGlibPtrFull<*mut u8> for Checksum {
     unsafe fn from_glib_full(ptr: *mut u8) -> Self {
         Checksum::new(ptr as *mut [u8; 32])
index bfc344cd1275470ead8043a2f064e45fb9c60fc1..a6b2aaff967b68c1ab188d30bb987a833ba00f4c 100644 (file)
@@ -129,7 +129,7 @@ impl Repo {
         unsafe {
             let mut error = ptr::null_mut();
             let mut out_csum = ptr::null_mut();
-            let _ = ostree_sys::fixed::ostree_repo_write_content(
+            let _ = ostree_sys::ostree_repo_write_content(
                 self.to_glib_none().0,
                 expected_checksum.to_glib_none().0,
                 object_input.as_ref().to_glib_none().0,
@@ -156,7 +156,7 @@ impl Repo {
         unsafe {
             let mut error = ptr::null_mut();
             let mut out_csum = ptr::null_mut();
-            let _ = ostree_sys::fixed::ostree_repo_write_metadata(
+            let _ = ostree_sys::ostree_repo_write_metadata(
                 self.to_glib_none().0,
                 objtype.to_glib(),
                 expected_checksum.to_glib_none().0,
index 375f5a4015cb94ba5e556d5581a6222a046d0a1c..1319576ba4ef900211abdd0c8c4c89e576d42dac 100644 (file)
@@ -1,29 +1 @@
 pub use libc::stat;
-
-pub mod fixed {
-    use crate::{OstreeObjectType, OstreeRepo};
-    use glib::gboolean;
-    use libc::c_char;
-
-    extern "C" {
-        pub fn ostree_repo_write_content(
-            self_: *mut OstreeRepo,
-            expected_checksum: *const c_char,
-            object_input: *mut gio::GInputStream,
-            length: u64,
-            out_csum: *mut *mut [u8; 32],
-            cancellable: *mut gio::GCancellable,
-            error: *mut *mut glib::GError,
-        ) -> gboolean;
-
-        pub fn ostree_repo_write_metadata(
-            self_: *mut OstreeRepo,
-            objtype: OstreeObjectType,
-            expected_checksum: *const c_char,
-            object: *mut glib::GVariant,
-            out_csum: *mut *mut [u8; 32],
-            cancellable: *mut gio::GCancellable,
-            error: *mut *mut glib::GError,
-        ) -> gboolean;
-    }
-}